package com.scrapy.dao.mongdb.util;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

/**
 *对db的常用的封装
 * 目前先这么封装把
 */
public class DBUtil {
	/**
	 * mongdb的ip地址和端口号
	 */
	private static final String host = "127.0.0.1:27017";
	/**
	 * mongdb 的客户端
	 */
	private static MongoClient mongoClient;
	/**
	 * mongdb的数据库
	 */
	private static MongoDatabase mongoDatabase;
	/**
	 * mongdb的数据库名字
	 */
	private static final String dbName = "qiuBai";
	/**
	 * 动态的拿到mongdb集合的名字
	 */
	private String collectionName = null;
	static {
		mongoClient = new MongoClient(host);
		mongoDatabase = mongoClient.getDatabase(dbName);
	}

	/**
	 * 放入要连接到某张集合的名字
	 * @param collectionName 集合的名字
	 */
	public DBUtil(String collectionName) {
		this.collectionName = collectionName;
	}
	/**
	 * 拿到集合collectionName
	 * @return 集合的名字
	 */
	private String getCollectionName(){
		return this.collectionName;
	}

	/**
	 * 拿到Mongdb的链接
	 * @return mongdb的链接
	 */
	
	private MongoCollection<Document> getConnection(){
		
		return this.geMongoDatabase().getCollection(this.getCollectionName());
	}

	/**
	 * 插入一条新的记录
	 * @param doc 要存贮的数据封装
	 */
	public void insert(Document doc) {  
		//System.out.println("执行了查询操作!!");
		MongoCollection<Document> conn = this.getConnection();
		conn.insertOne(doc);
		
    }
	
	/**
	 * 拿到数据库的链接
	 * @return 拿到mongdb对象
	 */
	private MongoDatabase geMongoDatabase(){
		return mongoDatabase;
	}
}
